home *** CD-ROM | disk | FTP | other *** search
/ com!online 2005 May / com_0505_1.iso / opensource / top10 / amc_install.exe / {app} / Scripts / 7arte.ifs < prev    next >
Encoding:
Text File  |  2004-09-25  |  8.4 KB  |  274 lines

  1. // GETINFO SCRIPTING
  2. // www.7arte.net
  3. //Script feito pelo O Guardiπo versπo 2.0 Beta 3
  4. //23-02-2004
  5.  
  6.  
  7. (***************************************************
  8.  *  For use with Ant Movie Catalog 3.4.0           *
  9.  *  www.antp.be/software/moviecatalog              *
  10.  *                                                 *
  11.  *  The source code of the script can be used in   *
  12.  *  another program only if full credits to        *
  13.  *  script author and a link to Ant Movie Catalog  *
  14.  *  website are given in the About box or in       *
  15.  *  the documentation of the program               *
  16.  *                                                 *
  17.  *  Please dont remove credits                     *
  18.  *  Reportem os erros para bruno_mga@hotmail.com   *
  19.  ***************************************************)
  20. program arte;
  21. const
  22.   BaseAddress = 'www.7arte.net/';
  23.   ManualPictureSelect = True;
  24.   ExternalPictures = False;
  25. var
  26.   MovieName: string;
  27.  
  28. function UpFirstLetterWord(texto:string):string; //Function Made By O Guardiπo
  29. var espaco:integer;
  30.  sst:string;
  31. begin
  32. texto:=AnsiUpFirstLetter(AnsiLowerCase(texto));
  33. repeat
  34.     espaco:=Pos(' ',texto);
  35.     sst:=AnsiUpperCase(Copy(texto,espaco+1,1));
  36.     texto:=Copy(texto,1,espaco-1)+'/|\'+sst+Copy(texto,espaco+2,length(texto));
  37. until Pos(' ',texto)=0;
  38. texto := StringReplace(texto, '/|\', ' ');
  39. if Copy(texto,1,1)=' ' then//se a 1║ pos Θ espaτo
  40.   texto:=Copy(texto,2,length(texto));
  41. result:=texto;
  42. end;
  43.  
  44. function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
  45. var
  46.   i: Integer;
  47. begin
  48.   result := -1;
  49.   if StartAt < 0 then
  50.     StartAt := 0;
  51.   for i := StartAt to List.Count-1 do
  52.     if Pos(Pattern, List.GetString(i)) <> 0 then
  53.     begin
  54.       result := i;
  55.       Break;
  56.     end;
  57. end;
  58. function HTMLRemove(Value: String): String;
  59. begin
  60.   HTMLDecode(Value);
  61.   HTMLRemoveTags(Value);
  62.   Value := Trim(Value);
  63.   result := Value;
  64. end;
  65. procedure AnalyzeFilmPage(Address: String);
  66. var
  67.   Page : TStringList;
  68.   Line, Value : string;
  69.   LineNr, BeginPos, EndPos: Integer;
  70.   AllTitles: TStringList;
  71. begin
  72.   Page := TStringList.Create;
  73.   Page.Text := GetPage('http://proxify.com/p/001110A0000110/http/'+Address);
  74.   SetField(fieldURL, Address);
  75.  
  76.  
  77.   //para continuar deve ser diferente destas mensagens
  78.   if (FindLine('SERVIDOR EM EXCESSO DE CARGA', Page, 0)<>-1) and (FindLine('POR FAVOR TENTE MAIS TARDE.', Page, 0)<>-1) then
  79.   showmessage('Servidor encontra-se indisponivel.')
  80.   else
  81.   begin
  82.   //modo alternativo para obter o nome traduzido
  83.   LineNr := FindLine('Critique o Filme', Page, 0);
  84.   if LineNr<>-1 then
  85.   begin
  86.     Value := Page.GetString(LineNr);
  87.     value:=HTMLRemove(value);
  88.     value:=Copy(value,17,length(value));
  89.     SetField(fieldTranslatedTitle, Value);
  90.   end
  91.   else
  92.   begin
  93.     //nome traduzido do filme
  94.     LineNr := FindLine('<FONT FACE="Arial,Helvetica"><FONT SIZE=+1>', Page, 0);
  95.     Value := Page.GetString(LineNr);
  96.     value:=HTMLRemove(value);
  97.     Value:=UpFirstLetterWord(Value);
  98.     SetField(fieldTranslatedTitle, Value);
  99.   end;
  100.  
  101.   //nome original do filme
  102.   LineNr := FindLine('<FONT FACE="Arial,Helvetica"><FONT SIZE=+1>', Page, 0);
  103.   value:= Page.GetString(LineNr+1);
  104.   Value := HTMLRemove(Value);
  105.   SetField(fieldOriginalTitle, Value);
  106.  
  107.   //pontuaτπo
  108.   LineNr := FindLine('<FONT SIZE=-1 FACE="Arial,Helvetica"><B>', Page, 0);
  109.   Value := Page.GetString(LineNr);
  110.   value:=HTMLRemove(value);
  111.   if (pos('.',value)<>-1) then
  112.    BeginPos:=StrToInt(copy(value,3,1),0);
  113.    if BeginPos>4 then
  114.      value:=IntToStr(1+StrToInt(Copy(value,1,1),0))
  115.   else
  116.   value:=Copy(value,1,1);
  117.   SetField(fieldRating, Value);
  118.  
  119.   //realizador
  120.   LineNr := FindLine('>Realizador:</', Page, 0);
  121.   Value := HTMLRemove(Page.GetString(LineNr));
  122.   value:=Copy(value,13,length(value));
  123.   SetField(fieldDirector, Value);
  124.  
  125.   //actores
  126.   Line:='';
  127. //  LineNr := FindLine('<B>╗</B> <a>', Page, 0);
  128.   LineNr := FindLine('<B>Actores:</B><BR><FONT Size=-1>', Page, 0);
  129.   lineNr:=lineNr+1;
  130.   repeat
  131.   value:=Page.GetString(LineNr);
  132.   if line<>'' then line:=line+', ';  // virgula entre cada nome
  133.   Line:=line+Copy(HTMLRemove(value),3,length(value));
  134.   lineNr:=lineNr+1;
  135.   value:=Page.GetString(LineNr);
  136. //  until  pos('<B>╗</B> <a>',value)=0;
  137.   until pos('</FONT></TD>',value)<> 0;
  138.   SetField(fieldActors, Line);
  139.  
  140.   //ano
  141.   LineNr := FindLine('><B>Ano:</B>', Page, 0);
  142.   value:=Copy(HTMLRemove(Page.GetString(LineNr)),6,length(value));
  143.   SetField(fieldYear, value);
  144.  
  145.   //duraτπo
  146.   LineNr := FindLine('<B>Duraτπo:</B> <FONT SIze=-1>', Page, 0);
  147.   value:=HTMLRemove(Page.GetString(LineNr));
  148.   Value := StringReplace(Value, 'Duraτπo: ', '');
  149.   Value := StringReplace(Value, ' minutos', '');
  150.   SetField(fieldLength, value);
  151.  
  152.   //genero
  153.   LineNr := FindLine('<B>GΘnero:</B> <FONT SIze=-1>', Page, 0);
  154.   value:=HTMLRemove(Page.GetString(LineNr));
  155.   Value := StringReplace(Value, 'GΘnero: ', '');
  156.   SetField(fieldCategory, value);
  157.  
  158.   //paφs
  159.   LineNr := FindLine('<B>Paφs de Origem:</B> <FONT SIze=-1>', Page, 0);
  160.   value:=HTMLRemove(Page.GetString(LineNr));
  161.   Value := StringReplace(Value, 'Paφs de Origem: ', '');
  162.   SetField(fieldCountry, value);
  163.   
  164.   //descriτπo
  165.   LineNr := FindLine('<B>Sinopse:</B><BR>', Page, 0);
  166.   if LineNr<>-1 then
  167.   begin
  168.   value:='';
  169.   repeat
  170.   LineNr:=LineNr+1;
  171.   value:=value+Page.GetString(LineNr);
  172.   until Pos('</TD>', Page.GetString(LineNr)) <> 0; //ate encontrar o </Td>
  173.   value:=HTMLRemove(value);
  174.   Value := StringReplace(Value, ' [ www.7arte.net ]', '');
  175.   SetField(fieldDescription, value);
  176.   end;
  177.  
  178.   // Get Picture
  179.   LineNr := FindLine('/imagens/filmes/', Page, 0);
  180.   if LineNr > -1 then
  181.   begin
  182.     value := Page.GetString(LineNr);
  183.     BeginPos := pos('src="', value)+5;
  184.     EndPos := pos('.jpg', value);
  185.   if endpos=0 then
  186.     EndPos := pos('.gif', value);
  187.     Value :=copy(value, BeginPos,4+EndPos-BeginPos);
  188.     GetPicture(Value, False);
  189.   end;
  190.  
  191.   
  192.   
  193. end;
  194. end;
  195.  
  196. procedure AnalyzePage(Address,Address2: string);
  197. var
  198.   Page: TStringList;
  199.   LineNr, StartPos, EndPos: Integer;
  200.   Line: string;
  201.   x:integer;
  202.   MovieAddress, findMovieName,linedown : string;
  203. begin
  204.   PickTreeClear;
  205.   Page := TStringList.Create;
  206.   Page.Text := GetPage(Address);
  207.  
  208.  
  209.   if (pos('Resultados Encontrados', Page.Text)>0) then   //search portuguese
  210.   begin
  211.     LineNr :=0;
  212.     repeat
  213.       LineNr := FindLine('/cgi-bin/filme.pl?codigo=', Page, LineNr);
  214.       If LineNr >0 Then Begin
  215.         Line := Page.GetString(LineNr);
  216.         StartPos := pos('cgi-bin/filme.pl?codigo=', Line);
  217.         EndPos := pos(')">',Line)-1;
  218.         MovieAddress :=  copy(Line, StartPos, EndPos - StartPos);
  219.         StartPos := EndPos + 15;
  220.         StartPos :=  EndPos+4;
  221.         endpos:=pos('</A><BR>',Line);
  222.         Line:=Copy(Line,startpos,endpos);
  223.         findmoviename:=HTMLRemove(Line);
  224.         HTMLRemoveTags(FindMovieName);
  225.         HTMLDecode(FindMovieName);
  226.         PickTreeAdd(FindMovieName, BaseAddress + MovieAddress);
  227.         LineNr := LineNr + 1;
  228.       End;
  229.     until (LineNr<1);
  230.     end;
  231.  
  232.     Page.Text := GetPage(Address2);
  233.  
  234.   if (pos('Resultados Encontrados', Page.Text)>0) then   //search portuguese
  235.   begin
  236.     LineNr :=0;
  237.     repeat
  238.       LineNr := FindLine('/cgi-bin/filme.pl?codigo=', Page, LineNr);
  239.       If LineNr >0 Then Begin
  240.         Line := Page.GetString(LineNr);
  241.         StartPos := pos('cgi-bin/filme.pl?codigo=', Line);
  242.         EndPos := pos(')">',Line)-1;
  243.         MovieAddress :=  copy(Line, StartPos, EndPos - StartPos);
  244.         StartPos := EndPos + 15;
  245.         StartPos :=  EndPos+4;
  246.         endpos:=pos('</A><BR>',Line);
  247.         Line:=Copy(Line,startpos,endpos);
  248.         findmoviename:=HTMLRemove(Line);
  249.         HTMLRemoveTags(FindMovieName);
  250.         HTMLDecode(FindMovieName);
  251.         PickTreeAdd(FindMovieName, BaseAddress + MovieAddress);
  252.         LineNr := LineNr + 1;
  253.       End;
  254.     until (LineNr<1);
  255.  
  256.  
  257.     if PickTreeExec(Address) then begin
  258.       AnalyzeFilmPage(Address);
  259.     end;
  260.     Page.Free;
  261.   end;
  262.   DisplayResults;
  263. end;
  264. begin
  265.   PickListClear;
  266.   MovieName := GetField(fieldOriginalTitle);
  267.   if Input('Import from www.7arte.net', 'Enter the title of the movie:', MovieName) then begin
  268.   //espaτo nπo sπo permitidos
  269.   MovieName := StringReplace(MovieName, ' ', '%20');
  270.   AnalyzePage('http://proxify.com/p/001110A0000110/http/www.7arte.net/cgi-bin/arq_search_orig.pl?letra=&proc='+MovieName,'http://proxify.com/p/001110A0000110/http/www.7arte.net/cgi-bin/arq_search.pl?proc='+MovieName);
  271.   end;
  272. end.
  273.  
  274.